package com.wingsboat.interfaces;

/**
 * 管道
 * 链表头
 *
 * @author wangzhong
 */
public interface Pipeline<T extends FilterContext> {
    /**
     * 获取链表头
     * @return
     */
    FilterChain getFilterChain();

    /**
     * 开始过滤
     * @param filterContext 过滤上下文
     */
    void bootstrap(T filterContext);

    /**
     * 增加过滤器
     * @param filter
     * @return
     */
    Pipeline addFilter(Filter filter);

}
